
 <!DOCTYPE HTML>
<html >
<head>
  <meta charset="UTF-8">
  
    <title>卢家豪第一周周报 | B3434lockchain</title>
    <meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
    
    <meta name="author" content="b3434lockchain">
    

    
    <meta name="description" content="第一次任务在本地机器完成fabric-sample中的first-network示例，输出对应的文档。 我做这个任务选择的操作系统是Windows10，因为一开始并不知道Linux系统比较好用，而且对Linux系统不熟悉，所以就选择了比较熟悉的win10系统，结果碰到了很多坑。 1.环境配置1.1.安装cURL首先去官网下载对应自己电脑版本的curl，官网地址为https://curl.haxx.">
<meta name="keywords" content="周报,卢家豪">
<meta property="og:type" content="article">
<meta property="og:title" content="卢家豪第一周周报">
<meta property="og:url" content="http://b3434lockchain.gitee.io/2018/10/07/lujiahao/lujiahao1/index.html">
<meta property="og:site_name" content="B3434lockchain">
<meta property="og:description" content="第一次任务在本地机器完成fabric-sample中的first-network示例，输出对应的文档。 我做这个任务选择的操作系统是Windows10，因为一开始并不知道Linux系统比较好用，而且对Linux系统不熟悉，所以就选择了比较熟悉的win10系统，结果碰到了很多坑。 1.环境配置1.1.安装cURL首先去官网下载对应自己电脑版本的curl，官网地址为https://curl.haxx.">
<meta property="og:locale" content="default">
<meta property="og:updated_time" content="2018-10-08T06:55:32.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="卢家豪第一周周报">
<meta name="twitter:description" content="第一次任务在本地机器完成fabric-sample中的first-network示例，输出对应的文档。 我做这个任务选择的操作系统是Windows10，因为一开始并不知道Linux系统比较好用，而且对Linux系统不熟悉，所以就选择了比较熟悉的win10系统，结果碰到了很多坑。 1.环境配置1.1.安装cURL首先去官网下载对应自己电脑版本的curl，官网地址为https://curl.haxx.">

    
    <link rel="alternative" href="/atom.xml" title="B3434lockchain" type="application/atom+xml">
    
    
    <link rel="icon" href="/img/favicon.ico">
    
    
    <link rel="apple-touch-icon" href="/img/jacman.jpg">
    <link rel="apple-touch-icon-precomposed" href="/img/jacman.jpg">
    
    <link rel="stylesheet" href="/css/style.css">
</head>

  <body>
    <header>
      
<div>
		
			<div id="imglogo">
				<a href="/"><img src="/img/logo.png" alt="B3434lockchain" title="B3434lockchain"/></a>
			</div>
			
			<div id="textlogo">
				<h1 class="site-name"><a href="/" title="B3434lockchain">B3434lockchain</a></h1>
				<h2 class="blog-motto"></h2>
			</div>
			<div class="navbar"><a class="navbutton navmobile" href="#" title="Menu">
			</a></div>
			<nav class="animated">
				<ul>
					<ul>
					 
						<li><a href="/">Home</a></li>
					
						<li><a href="/archives">Archives</a></li>
					
						<li><a href="/about">About</a></li>
					
					<li>
 					
						<form class="search" action="https://www.baidu.com" target="_blank">
							<label>Search</label>
						<input name="s" type="hidden" value=  ><input type="text" name="q" size="30" placeholder="Search"><br>
						</form>
					
					</li>
				</ul>
			</nav>			
</div>
    </header>
    <div id="container">
      <div id="main" class="post" itemscope itemprop="blogPost">
  
	<article itemprop="articleBody"> 
		<header class="article-info clearfix">
  <h1 itemprop="name">
    
      <a href="/2018/10/07/lujiahao/lujiahao1/" title="卢家豪第一周周报" itemprop="url">卢家豪第一周周报</a>
  </h1>
  <p class="article-author">By
       
		<a href="/about" title="b3434lockchain" target="_blank" itemprop="author">b3434lockchain</a>
		
  <p class="article-time">
    <time datetime="2018-10-07T03:00:00.000Z" itemprop="datePublished"> Published 2018-10-07</time>
    
  </p>
</header>
	<div class="article-content">
		
		<div id="toc" class="toc-article">
			<strong class="toc-title">Contents</strong>
		
			<ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#第一次任务"><span class="toc-number">1.</span> <span class="toc-text">第一次任务</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-环境配置"><span class="toc-number">1.1.</span> <span class="toc-text">1.环境配置</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1-1-安装cURL"><span class="toc-number">1.1.1.</span> <span class="toc-text">1.1.安装cURL</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#1-2-安装Docker和Docker-compose"><span class="toc-number">1.1.2.</span> <span class="toc-text">1.2.安装Docker和Docker-compose</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#1-3-安装Go语言"><span class="toc-number">1.1.3.</span> <span class="toc-text">1.3.安装Go语言</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-运行"><span class="toc-number">1.2.</span> <span class="toc-text">2.运行</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#byfn-sh-generate"><span class="toc-number">1.2.1.</span> <span class="toc-text">./byfn.sh generate</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#byfn-sh-up"><span class="toc-number">1.2.2.</span> <span class="toc-text">./byfn.sh up</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#byfn-sh-down"><span class="toc-number">1.2.3.</span> <span class="toc-text">./byfn.sh down</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#总结"><span class="toc-number">1.3.</span> <span class="toc-text">总结</span></a></li></ol></li></ol>
		
		</div>
		
		<h1 id="第一次任务"><a href="#第一次任务" class="headerlink" title="第一次任务"></a>第一次任务</h1><pre><code>在本地机器完成fabric-sample中的first-network示例，输出对应的文档。
</code></pre><p>我做这个任务选择的操作系统是Windows10，因为一开始并不知道Linux系统比较好用，而且对Linux系统不熟悉，所以就选择了比较熟悉的win10系统，结果碰到了很多坑。</p>
<h2 id="1-环境配置"><a href="#1-环境配置" class="headerlink" title="1.环境配置"></a>1.环境配置</h2><h3 id="1-1-安装cURL"><a href="#1-1-安装cURL" class="headerlink" title="1.1.安装cURL"></a>1.1.安装cURL</h3><pre><code>首先去官网下载对应自己电脑版本的curl，官网地址为https://curl.haxx.se/download.html
安装完成后就是运行curl的方法，我在CSDN上看到有三种方法可以运行curl：
1.通过命令行窗口进入curl安装目录下的bin目录，然后输入curl的相关命令。
2.将bin目录吓得curl.exe文件放到目录C:\Windows\System32 下，
就可以直接在命令行窗口中使用curl命令。
3.配置curl的环境变量，在系统变量Path中配置curl安装路径，效果等同于方法二。
</code></pre><h3 id="1-2-安装Docker和Docker-compose"><a href="#1-2-安装Docker和Docker-compose" class="headerlink" title="1.2.安装Docker和Docker-compose"></a>1.2.安装Docker和Docker-compose</h3><pre><code>win10是可以利用DockerToolbox安装docker和docker-compose。
DockerToolbox的官网下载地址为https://www.docker.com/products/docker-toolbox。
安装DockerToolbox要求系统必须是win7及以上的64位系统，而且硬件必须支持虚拟化技术，并且要处于启用状态。
win10可以在任务管理器中的性能中查看虚拟化是否启用。
然后按照提示就可以直接将DockerToolbox安装好。安装成功以后，桌面上会出现三个图标，分别是
Dockers Quickstart Terminal、Oracle VM VirtualBox和Kitematic(Alpha)。
运行Dockers Quickstart Terminal，第一次执行会有初始化操作，初始化完成后就可以了。
![](https://i.imgur.com/AqN7otJ.png)
接下来通过运行·docker run hello-world·验证是否安装成功，如果出现以下内容，说明Docker已经安装成功了。
![](https://i.imgur.com/4qeSADK.png)
接着就是docker-compose的安装：
$ curl -L &quot;https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
安装完成后，可以使用docker-compose --version来检测是否安装成功。
</code></pre><h3 id="1-3-安装Go语言"><a href="#1-3-安装Go语言" class="headerlink" title="1.3.安装Go语言"></a>1.3.安装Go语言</h3><pre><code>Go语言的安装是比较简单的，按照接下来的步骤进行就行了。
1.从官网 https://golang.org/dl/ 下载Go的最新发布版本。
2.下载完成后双击就可以安装了，安装目录看个人喜好。
3.接下来将Go的安装目录配置到电脑的系统环境变量中。
4.测试一些，打开命令行窗口，输入go version来检测是否安装成功。
</code></pre><p>在安装这方面的坑并不多，因为网上的教程都比较仔细，所以安装过程还是比较顺利的。</p>
<h2 id="2-运行"><a href="#2-运行" class="headerlink" title="2.运行"></a>2.运行</h2><pre><code>运行的首要前提就是下载好fabric-sample的源代码，通过一下命令可以克隆需要运行的fabric-sample：
git clone -b master https://github.com/hyperledger/fabric-samples.git
接下来打开命令行窗口，首先进入到fabric-samples/first-network的目录当中，然后按顺序执行命令。
</code></pre><h3 id="byfn-sh-generate"><a href="#byfn-sh-generate" class="headerlink" title="./byfn.sh generate"></a>./byfn.sh generate</h3><pre><code>这条命令的作用是为生成网络初始化配置，包括MSP证书、私钥、创世区块和配置交易等文件，MSP相关的信息在crypto-config文件夹中，
创世区块在channel-artifacts文件夹中，MSP证书和私钥用于不同的网络实体，创世块用于启动排序服务，配置交易文件用于配置通道。
</code></pre><h3 id="byfn-sh-up"><a href="#byfn-sh-up" class="headerlink" title="./byfn.sh up"></a>./byfn.sh up</h3><pre><code>这条命令的功能是启动超级账本网络，在启动之前还会检查各种配置，并采取相对应的措施，保证超级账本网络顺利启动。
</code></pre><h3 id="byfn-sh-down"><a href="#byfn-sh-down" class="headerlink" title="./byfn.sh down"></a>./byfn.sh down</h3><pre><code>这条命令的作用是关闭超级账本网络，具体包括删除容器和不必要的镜像文件。
</code></pre><p>在运行这一方面我并没有很顺利的完成，遇到了挺多问题的。第一个是在运行上述三条命令的时候，gitbash窗口总是会在运行完立刻关闭，我看不清楚显示了哪些信息；第二个就是在运行第二条指令的时候，出现了bash: configtxlator: command not found的错误，之后弄了一下，出现了bash: /c/Users/ASUS/bin/configtxlator: cannot execute binary file: Exec format error这条错误，我不知道怎么改正。</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><pre><code>通过这次的练习，我清楚的认识到Windows并没有我想象中的那么好用，可能是Linux更适合来跑Hyperledger Fabric，所以我觉得在一开始我就走错了方向，应该用Linux来做这一次的练习而不是Windows。接下来我打算用Linux先跑通first-network，然后在回过头来看看这次用Windows做出现了哪些错误，再尝试解决。
</code></pre>  
	</div>
		<footer class="article-footer clearfix">
<div class="article-catetags">


  <div class="article-tags">
  
  <span></span> <a href="/tags/周报/">周报</a><a href="/tags/卢家豪/">卢家豪</a>
  </div>

</div>



	<div class="article-share" id="share">
	
	  <div data-url="http://b3434lockchain.gitee.io/2018/10/07/lujiahao/lujiahao1/" data-title="卢家豪第一周周报 | B3434lockchain" data-tsina="" class="share clearfix">
	  </div>
	
	</div>


</footer>

   	       
	</article>
	
<nav class="article-nav clearfix">
 
 <div class="prev" >
 <a href="/2018/10/07/tanjunxi/tanjunxi1/" title="谭俊熙第一周周报">
  <strong>上一篇：</strong><br/>
  <span>
  谭俊熙第一周周报</span>
</a>
</div>


<div class="next">
<a href="/2018/10/07/fenghuawen/fenghuawen1/"  title="冯华文第一周周报">
 <strong>下一篇：</strong><br/> 
 <span>冯华文第一周周报
</span>
</a>
</div>

</nav>

	



</div>  
      <div class="openaside"><a class="navbutton" href="#" title="Show Sidebar"></a></div>

  <div id="toc" class="toc-aside">
  <strong class="toc-title">Contents</strong>
 
 <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#第一次任务"><span class="toc-number">1.</span> <span class="toc-text">第一次任务</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-环境配置"><span class="toc-number">1.1.</span> <span class="toc-text">1.环境配置</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1-1-安装cURL"><span class="toc-number">1.1.1.</span> <span class="toc-text">1.1.安装cURL</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#1-2-安装Docker和Docker-compose"><span class="toc-number">1.1.2.</span> <span class="toc-text">1.2.安装Docker和Docker-compose</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#1-3-安装Go语言"><span class="toc-number">1.1.3.</span> <span class="toc-text">1.3.安装Go语言</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-运行"><span class="toc-number">1.2.</span> <span class="toc-text">2.运行</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#byfn-sh-generate"><span class="toc-number">1.2.1.</span> <span class="toc-text">./byfn.sh generate</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#byfn-sh-up"><span class="toc-number">1.2.2.</span> <span class="toc-text">./byfn.sh up</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#byfn-sh-down"><span class="toc-number">1.2.3.</span> <span class="toc-text">./byfn.sh down</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#总结"><span class="toc-number">1.3.</span> <span class="toc-text">总结</span></a></li></ol></li></ol>
 
  </div>

<div id="asidepart">
<div class="closeaside"><a class="closebutton" href="#" title="Hide Sidebar"></a></div>
<aside class="clearfix">

  

  
<div class="tagslist">
	<p class="asidetitle">Tags</p>
		<ul class="clearfix">
		
			
				<li><a href="/tags/周报/" title="周报">周报<sup>23</sup></a></li>
			
		
			
				<li><a href="/tags/谭俊熙/" title="谭俊熙">谭俊熙<sup>11</sup></a></li>
			
		
			
				<li><a href="/tags/苏思捷/" title="苏思捷">苏思捷<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/学习报告/" title="学习报告">学习报告<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/卢家豪/" title="卢家豪">卢家豪<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/报告/" title="报告">报告<sup>5</sup></a></li>
			
		
			
				<li><a href="/tags/苏佳鑫/" title="苏佳鑫">苏佳鑫<sup>4</sup></a></li>
			
		
			
				<li><a href="/tags/冯华文/" title="冯华文">冯华文<sup>4</sup></a></li>
			
		
			
				<li><a href="/tags/周报反馈/" title="周报反馈">周报反馈<sup>2</sup></a></li>
			
		
			
				<li><a href="/tags/吴朝捷/" title="吴朝捷">吴朝捷<sup>2</sup></a></li>
			
		
			
				<li><a href="/tags/黎宁/" title="黎宁">黎宁<sup>1</sup></a></li>
			
		
			
				<li><a href="/tags/笔记/" title="笔记">笔记<sup>1</sup></a></li>
			
		
		</ul>
</div>


</aside>
</div>
    </div>
    <footer><div id="footer" >
	
	
	<div class="social-font" class="clearfix">
		
		
		
		
		
		
		
		
		
		
	</div>
			
		

		<p class="copyright">
		
		</p>
</div>
</footer>
    <script src="/js/jquery-2.0.3.min.js"></script>
<script src="/js/jquery.imagesloaded.min.js"></script>
<script src="/js/gallery.js"></script>
<script src="/js/jquery.qrcode-0.12.0.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){ 
  $('.navbar').click(function(){
    $('header nav').toggleClass('shownav');
  });
  var myWidth = 0;
  function getSize(){
    if( typeof( window.innerWidth ) == 'number' ) {
      myWidth = window.innerWidth;
    } else if( document.documentElement && document.documentElement.clientWidth) {
      myWidth = document.documentElement.clientWidth;
    };
  };
  var m = $('#main'),
      a = $('#asidepart'),
      c = $('.closeaside'),
      o = $('.openaside');
  c.click(function(){
    a.addClass('fadeOut').css('display', 'none');
    o.css('display', 'block').addClass('fadeIn');
    m.addClass('moveMain');
  });
  o.click(function(){
    o.css('display', 'none').removeClass('beforeFadeIn');
    a.css('display', 'block').removeClass('fadeOut').addClass('fadeIn');      
    m.removeClass('moveMain');
  });
  $(window).scroll(function(){
    o.css("top",Math.max(80,260-$(this).scrollTop()));
  });
  
  $(window).resize(function(){
    getSize(); 
    if (myWidth >= 1024) {
      $('header nav').removeClass('shownav');
    }else{
      m.removeClass('moveMain');
      a.css('display', 'block').removeClass('fadeOut');
      o.css('display', 'none');
      
      $('#toc.toc-aside').css('display', 'none');
        
    }
  });
});
</script>

<script type="text/javascript">
$(document).ready(function(){ 
  var ai = $('.article-content>iframe'),
      ae = $('.article-content>embed'),
      t  = $('#toc'),
      ta = $('#toc.toc-aside'),
      o  = $('.openaside'),
      c  = $('.closeaside');
  if(ai.length>0){
    ai.wrap('<div class="video-container" />');
  };
  if(ae.length>0){
   ae.wrap('<div class="video-container" />');
  };
  c.click(function(){
    ta.css('display', 'block').addClass('fadeIn');
  });
  o.click(function(){
    ta.css('display', 'none');
  });
  $(window).scroll(function(){
    ta.css("top",Math.max(140,320-$(this).scrollTop()));
  });
});
</script>


<script type="text/javascript">
$(document).ready(function(){ 
  var $this = $('.share'),
      url = $this.attr('data-url'),
      encodedUrl = encodeURIComponent(url),
      title = $this.attr('data-title'),
      tsina = $this.attr('data-tsina'),
      description = $this.attr('description');
  var html = [
  '<div class="hoverqrcode clearfix"></div>',
  '<a class="overlay" id="qrcode"></a>',
  '<a href="https://www.facebook.com/sharer.php?u=' + encodedUrl + '" class="article-share-facebook" target="_blank" title="Facebook"></a>',
  '<a href="https://twitter.com/intent/tweet?url=' + encodedUrl + '" class="article-share-twitter" target="_blank" title="Twitter"></a>',
  '<a href="#qrcode" class="article-share-qrcode" title="微信"></a>',
  '<a href="http://widget.renren.com/dialog/share?resourceUrl=' + encodedUrl + '&srcUrl=' + encodedUrl + '&title=' + title +'" class="article-share-renren" target="_blank" title="人人"></a>',
  '<a href="http://service.weibo.com/share/share.php?title='+title+'&url='+encodedUrl +'&ralateUid='+ tsina +'&searchPic=true&style=number' +'" class="article-share-weibo" target="_blank" title="微博"></a>',
  '<span title="Share to"></span>'
  ].join('');
  $this.append(html);

  $('.hoverqrcode').hide();

  var myWidth = 0;
  function updatehoverqrcode(){
    if( typeof( window.innerWidth ) == 'number' ) {
      myWidth = window.innerWidth;
    } else if( document.documentElement && document.documentElement.clientWidth) {
      myWidth = document.documentElement.clientWidth;
    };
    var qrsize = myWidth > 1024 ? 200:100;
    var options = {render: 'image', size: qrsize, fill: '#2ca6cb', text: url, radius: 0.5, quiet: 1};
    var p = $('.article-share-qrcode').position();
    $('.hoverqrcode').empty().css('width', qrsize).css('height', qrsize)
                          .css('left', p.left-qrsize/2+20).css('top', p.top-qrsize-10)
                          .qrcode(options);
  };
  $(window).resize(function(){
    $('.hoverqrcode').hide();
  });
  $('.article-share-qrcode').click(function(){
    updatehoverqrcode();
    $('.hoverqrcode').toggle();
  });
  $('.article-share-qrcode').hover(function(){}, function(){
      $('.hoverqrcode').hide();
  });
});   
</script>











<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" media="screen" type="text/css">
<script src="/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 
  $('.article-content').each(function(i){
    $(this).find('img').each(function(){
      if ($(this).parent().hasClass('fancybox')) return;
      var alt = this.alt;
      if (alt) $(this).after('<span class="caption">' + alt + '</span>');
      $(this).wrap('<a href="' + this.src + '" title="' + alt + '" class="fancybox"></a>');
    });
    $(this).find('.fancybox').each(function(){
      $(this).attr('rel', 'article' + i);
    });
  });
  if($.fancybox){
    $('.fancybox').fancybox();
  }
}); 
</script>



<!-- Analytics Begin -->





<!-- Analytics End -->

<!-- Totop Begin -->

	<div id="totop">
	<a title="Back to Top"><img src="/img/scrollup.png"/></a>
	</div>
	<script src="/js/totop.js"></script>

<!-- Totop End -->

<!-- MathJax Begin -->
<!-- mathjax config similar to math.stackexchange -->


<!-- MathJax End -->

<!-- Tiny_search Begin -->

<!-- Tiny_search End -->

  </body>
</html>
